package com.csun.cmny.provider.service;

import com.csun.cmny.base.dto.LoginAuthDto;
import com.csun.cmny.core.support.IService;
import com.csun.cmny.provider.model.domain.DmcRfidReaderGroup;
import com.csun.cmny.provider.model.dto.rfid.RfidReaderGroupDto;
import com.csun.cmny.provider.model.dto.rfid.RfidReaderGroupQueryDto;

import java.util.List;

/**
 * @Auther: chisj chisj@foxmal.com
 * @Date: 2019-08-22 14:59
 * @Description: the interface dmc rfid reader group service
 */
public interface DmcRfidReaderGroupService extends IService<DmcRfidReaderGroup> {

    /**
     * add rfid reader group with rfid reader bind
     *
     * @param rfidReaderGroupDto    the rfid reader group dto
     * @param loginAuthDto          the login auth dto
     *
     * @return  the int
     */
    Integer addWithRfidReader(RfidReaderGroupDto rfidReaderGroupDto, LoginAuthDto loginAuthDto);

    /**
     * edit rfid reader group with rfid reader bind
     *
     * @param rfidReaderGroupDto    the rfid reader group dto
     * @param loginAuthDto          the login auth dto
     *
     * @return  the int.
     */
    Integer editWithRfidReader(RfidReaderGroupDto rfidReaderGroupDto, LoginAuthDto loginAuthDto);

    /**
     * delete rfid reader group with rfid reader bind
     *
     * @param id    the rfid reader group id
     *
     * @return  the int
     */
    Integer deleteWithRfidReaderById(Long id);

    /**
     * query rfid reader group list with page
     *
     * @param rfidReaderGroupQueryDto   the rfid reader group query dto
     *
     * @return  the list.
     */
    List<RfidReaderGroupDto> queryListWithPage(RfidReaderGroupQueryDto rfidReaderGroupQueryDto);

    /**
     * query rfid reader group not bind alarm light
     *
     * @param groupId   the group id
     *
     * @return  the list
     */
    List<DmcRfidReaderGroup> queryNotBindAlarmLight(Long groupId);

    /**
     * select rfid reader group dto by rfid reader id
     *
     * @param rfidReaderId  the rfid reader no
     *
     * @return  the rfid reader group dto
     */
    RfidReaderGroupDto selectByRfidReaderId(Long rfidReaderId);
}
